Skip to content

Radio Host Immediate Fixes - #5554

Merged
walksanatora merged 14 commits into
ss14Starlight:starlight-devfrom
Huaqas:radio-host-fixes-01
Aug 10, 2026
Merged

Radio Host Immediate Fixes#5554
walksanatora merged 14 commits into
ss14Starlight:starlight-devfrom
Huaqas:radio-host-fixes-01

Conversation

@Huaqas

@Huaqas Huaqas commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Short description

So the chat range was not working on the first PR. I think in the demonstration video its also not working, I just accidentally gaslit myself into thinking it was working in testing cause the aghost has infinite whisper range.

Now it actually functions. By default...
Station Radios will relay messages normally.
If low volume mode is enabled, then it will whisper the message instead.

Why we need to add this

🐛 🔫

Media (Video/Screenshots)

image image

Checks

  • I do not require assistance to complete the PR.
  • Before posting/requesting review of a PR, I have verified that the changes work.
  • I have added screenshots/videos of the changes, or this PR does not change in-game mechanics.
  • I affirm that my changes are licensed under the MIT License and grant permission for use in this repository under its conditions.

Changelog

🆑 Huaqas

  • fix: Radio Hosts will now spawn with their PDAs.
  • fix: Radio Hosts can no longer spawn with no jumpsuit.
  • fix: Station Radios should be easier to hear and will whisper when set to Low Volume mode.
  • fix: Ghosts will no longer get spammed with messages from every station radio.
  • add: Radio Hosts now have Service access.
  • add: BSO, NTR and the Reporter now have Journalism access. Service Workers will receive Journalism access with their extended access.
  • add: You can now examine a Vinyl Player to tell you what is currently inserted.
  • add: You can now examine a Station Radio to tell what volume it is playing at.
  • add: You can now examine a Station Radio Server to tell if it is recording or not.

Huaqas added 3 commits August 7, 2026 21:20
Turns out I got baited following the rabbit in the previous PR.

Don't need a bunch of this junk since I already have the LowVolume variable. I can just base everything off of that.
Now when you examine the Vinyl Player, it will tell you what is inside if there is anything inside.
If you examine the radio, it will tell you if it is at full or low volume.
@Huaqas
Huaqas requested a review from a team August 7, 2026 14:08
@github-actions github-actions Bot added S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/S Changes: C# Changes: Prototypes labels Aug 7, 2026
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Summary

This PR updates Radio Host spawning, access, and station radio behavior.

  • Radio Hosts receive a PDA, jumpsuit, and Service access.
  • Radio Hosts require a selected jumpsuit.
  • BSO, NTR, Reporters, and Service Workers receive Journalism access.
  • Station radios use normal relay range by default.
  • Station radios use whisper range in LowVolume mode.
  • Ghosts no longer receive messages from every station radio.
  • Examination shows station radio volume, vinyl contents, and radio server recording status.
  • Localization entries support the new examination text.

Notable changes

  • RadioDeviceSystem selects speaking or whispering based on StationRadioReceiverComponent.LowVolume.
  • Whisper delivery supports recipients with HideChat range results.
  • Shared radio systems implement examination handlers for station radios, radio servers, and vinyl players.
  • RadioSpeakerComponent removes the public ParseRadioPrefix and PowerRequired fields.
  • Station radio prototypes no longer configure the removed fields.
  • Radio Host job and loadout prototypes define updated equipment and access.
  • Service Worker, Reporter, BSO, and NTR prototypes add Journalism access.

Risk areas

  • Removing public component fields can affect other prototypes or systems that reference them.
  • Station radios now require power unconditionally.
  • Low-volume transmission depends on correct whisper range and HideChat handling.
  • Loadout validation can affect Radio Host character creation when no jumpsuit is selected.
  • New access grants can change role access and station security boundaries.
  • Examination handlers depend on correct component state and localization keys.

Guideline gaps

  • The PR does not document the rationale for removing ParseRadioPrefix and PowerRequired.
  • The PR does not document the design impact of mandatory station radio power.
  • The PR does not identify the breaking-change impact of removing public component fields.
  • The PR does not explain the rationale for the additional Journalism access grants.
  • The PR does not include Starlight ownership comments for modified _Goobstation or _Starlight files.

Walkthrough

Station radio speakers now require power and select chat output from receiver volume. Station radio entities expose examination details. RadioHost equipment and Journalism access settings were updated.

Changes

Station radio updates

Layer / File(s) Summary
Radio reception behavior
Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs, Content.Server/Chat/Systems/ChatSystem.cs
Unpowered speakers stop receiving radio messages. Station radio receivers hide messages from chat and select whisper or speak output from LowVolume. Whisper delivery now preserves the computed hidden-chat state.
Station radio examination
Content.Shared/Radio/EntitySystems/SharedRadioDeviceSystem.cs, Content.Shared/_Goobstation/StationRadio/Systems/*, Resources/Locale/en-US/_Goobstation/machines/stationradio.ftl
Examination reports server recording status, receiver volume, and vinyl player contents with localized text.
RadioHost and Journalism access configuration
Resources/Prototypes/_Goobstation/Loadouts/loadout_groups.yml, Resources/Prototypes/_Goobstation/Roles/Jobs/Crew/radiohost.yml, Resources/Prototypes/Roles/Jobs/*, Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/*
RadioHost loadouts require a jumpsuit selection and provide a PDA. RadioHost and selected jobs gain Service or Journalism access.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Examiner
  participant ExaminedEvent
  participant StationRadioReceiverSystem
  participant VinylPlayerSystem
  participant SharedRadioDeviceSystem
  Examiner->>ExaminedEvent: Examine station radio entity
  ExaminedEvent->>StationRadioReceiverSystem: Invoke receiver examination
  ExaminedEvent->>VinylPlayerSystem: Invoke vinyl player examination
  ExaminedEvent->>SharedRadioDeviceSystem: Invoke server examination
  StationRadioReceiverSystem-->>Examiner: Display receiver volume
  VinylPlayerSystem-->>Examiner: Display vinyl contents
  SharedRadioDeviceSystem-->>Examiner: Display recording status
Loading

Possibly related PRs

Suggested labels: Changes: Audio

Suggested reviewers: rinary1

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title accurately identifies the Radio Host fixes, which include the main station radio behavior and related spawning and access changes.
Description check ✅ Passed The description directly explains the station radio fixes, Radio Host updates, access changes, and new examination details.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Almost forgot this.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs`:
- Line 200: Add a recognized // Starlight ownership marker to the modified
condition in RadioDeviceSystem, placing it before or on the existing //
Goobstation - Radio Host comment while preserving the condition’s behavior.
- Line 200: Add a recognized Starlight ownership marker to the change at
Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs lines 200-200, since the
existing Goobstation marker is insufficient. Extend the existing Starlight
marker pair through the changed relay call at lines 210-220, or mark lines
216-220 individually; ensure every Starlight change in this non-_Starlight C#
file has an unambiguous marker.

In
`@Content.Shared/_Goobstation/StationRadio/Systems/StationRadioReceiverSystem.cs`:
- Around line 240-248: Group the new Starlight additions inside `#region`
Starlight blocks: wrap OnExamined in StationRadioReceiverSystem.cs (lines
240-248) and VinylPlayerSystem.cs (lines 160-176) in method regions, and place
_container with the Starlight dependency fields in VinylPlayerSystem.cs (line
24) within a variable region.
- Around line 243-247: Update OnExamined to avoid reporting playback when the
receiver is inactive or unpowered, using the same state represented by GetGain
returning 0f. Add and select a localized non-playing message for that state;
retain the existing low-volume and full-volume messages only when the radio is
active and powered.

In `@Content.Shared/_Goobstation/StationRadio/Systems/VinylPlayerSystem.cs`:
- Line 24: Wrap the Starlight-specific _container dependency in
VinylPlayerSystem’s variable declarations inside a `#region` Starlight block,
grouping it with any other Starlight variables while leaving unrelated
dependencies outside the region.

In `@Resources/Locale/en-US/_Goobstation/machines/stationradio.ftl`:
- Around line 13-18: Update the new localization keys in the existing
`_Goobstation` stationradio FTL file to include the required Starlight ownership
marker, preserving the file location and all message text.

In `@Resources/Prototypes/_Goobstation/Loadouts/loadout_groups.yml`:
- Line 4: Mark each Starlight-owned change by appending the comment marker “#
Starlight” to Resources/Prototypes/_Goobstation/Loadouts/loadout_groups.yml
lines 4-4, Resources/Prototypes/_Goobstation/Roles/Jobs/Crew/radiohost.yml lines
12-12, and radiohost.yml lines 17-17; keep all files in their existing
locations.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 20841b42-4fd6-4c55-a34e-3ffd096d2763

📥 Commits

Reviewing files that changed from the base of the PR and between 6bab688 and 816ad4d.

📒 Files selected for processing (8)
  • Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs
  • Content.Shared/Radio/Components/RadioSpeakerComponent.cs
  • Content.Shared/_Goobstation/StationRadio/Systems/StationRadioReceiverSystem.cs
  • Content.Shared/_Goobstation/StationRadio/Systems/VinylPlayerSystem.cs
  • Resources/Locale/en-US/_Goobstation/machines/stationradio.ftl
  • Resources/Prototypes/_Goobstation/Entities/Structures/Machines/StationRadio/radio_recievers.yml
  • Resources/Prototypes/_Goobstation/Loadouts/loadout_groups.yml
  • Resources/Prototypes/_Goobstation/Roles/Jobs/Crew/radiohost.yml
💤 Files with no reviewable changes (2)
  • Content.Shared/Radio/Components/RadioSpeakerComponent.cs
  • Resources/Prototypes/_Goobstation/Entities/Structures/Machines/StationRadio/radio_recievers.yml

Comment thread Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs
Comment thread Resources/Locale/en-US/_Goobstation/machines/stationradio.ftl
Comment thread Resources/Prototypes/_Goobstation/Loadouts/loadout_groups.yml
@Huaqas

Huaqas commented Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

Just realised there are some jobs that should have journalism access but don't like NTR and BlueShield.

I'll add that tomorrow so Reporters aren't spawned in a room they have no access to.

Huaqas added 4 commits August 9, 2026 18:50
BSO, NTR and Reporter all get Journalism.
Service Workers get Journalism as extended access.
Also more documentation since this is a upstream system and as much documentation should be provided.

This introduces a bug that causes messages to be hidden from the radio when it is in lowvolume mode. I don't know how to fix.
You can now examine the radio server to see if it is recording or not.
Just doing what the rabbit wants. Literally no changes in code, its all formatting to appease our AI overlord.
@github-actions github-actions Bot added size/M and removed size/S labels Aug 9, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
Content.Shared/Radio/EntitySystems/SharedRadioDeviceSystem.cs (1)

56-60: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Document the new public override.

Initialize() is public and was added without XML documentation. Add a short <summary> that explains its ExaminedEvent subscription.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Content.Shared/Radio/EntitySystems/SharedRadioDeviceSystem.cs` around lines
56 - 60, Add XML documentation with a concise summary to the public override
Initialize method, explicitly describing its subscription to ExaminedEvent for
StationRadioServerComponent. Keep the existing initialization and subscription
behavior unchanged.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@Content.Shared/Radio/EntitySystems/SharedRadioDeviceSystem.cs`:
- Around line 55-74: Add a recognized Starlight ownership marker around the new
Initialize and OnExamined block in SharedRadioDeviceSystem, using either a //
Starlight comment or paired // Starlight-start and // Starlight-end comments
instead of relying only on the `#region` Starlight directive.
- Around line 70-72: Correct the recording-state mapping in
SharedRadioDeviceSystem’s examine localization: ensure mic.Enabled == true
displays the “recording” message and false displays the “not recording” message.
Update the corresponding station-radio localization values or swap the keys used
by the ternary without changing the surrounding examine flow.

---

Nitpick comments:
In `@Content.Shared/Radio/EntitySystems/SharedRadioDeviceSystem.cs`:
- Around line 56-60: Add XML documentation with a concise summary to the public
override Initialize method, explicitly describing its subscription to
ExaminedEvent for StationRadioServerComponent. Keep the existing initialization
and subscription behavior unchanged.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3cde87bd-bb91-4583-9920-b2283b28e30e

📥 Commits

Reviewing files that changed from the base of the PR and between 816ad4d and af6b337.

📒 Files selected for processing (9)
  • Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs
  • Content.Shared/Radio/EntitySystems/SharedRadioDeviceSystem.cs
  • Content.Shared/_Goobstation/StationRadio/Systems/StationRadioReceiverSystem.cs
  • Content.Shared/_Goobstation/StationRadio/Systems/VinylPlayerSystem.cs
  • Resources/Locale/en-US/_Goobstation/machines/stationradio.ftl
  • Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml
  • Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/blueshield.yml
  • Resources/Prototypes/_Starlight/Roles/Jobs/Representatives/nanotrasenrepresentative.yml
🚧 Files skipped from review as they are similar to previous changes (4)
  • Resources/Locale/en-US/_Goobstation/machines/stationradio.ftl
  • Content.Shared/_Goobstation/StationRadio/Systems/VinylPlayerSystem.cs
  • Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs
  • Content.Shared/_Goobstation/StationRadio/Systems/StationRadioReceiverSystem.cs

Comment thread Content.Shared/Radio/EntitySystems/SharedRadioDeviceSystem.cs
Comment thread Content.Shared/Radio/EntitySystems/SharedRadioDeviceSystem.cs Outdated
Huaqas added 5 commits August 9, 2026 21:48
Make up your damn mind rabbit.
I hate whitespaces. Grrrrr!
I don't need to add a region to define it if i create a comment region. But if I do it the way he wants it, he wants me to add a comment region back.
bruh
@coderabbitai coderabbitai Bot mentioned this pull request Aug 9, 2026
4 tasks
@Huaqas

Huaqas commented Aug 9, 2026

Copy link
Copy Markdown
Contributor Author

@CodeRabbit rereview plz

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

@Huaqas I will review the updated changes.

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@Huaqas Huaqas mentioned this pull request Aug 10, 2026
4 tasks
The last bug to fix.
The station radio will no longer send messages to ghosts, and the Speaking and Whispering based on whether LowVolume is equal to True or False is now officially fixed.

Thank you so much to Centronias who solved this bug for me. Its also why is in // Moffstation comments because it's his fix and I am so thankful for him saving me wasting my day off trying to bootleg a fix.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@Content.Server/Chat/Systems/ChatSystem.cs`:
- Around line 637-640: Wrap the changed radio-host range-check block in
ChatSystem with a recognized Starlight ownership marker, while preserving the
existing Moffstation markers and logic. Place the marker around the code
involving MessageRangeCheck(session, data, range) and its Disallowed condition
so upstream merges can identify the Starlight change.
- Around line 637-640: Update the station-radio handling around
MessageRangeCheck so ChatTransmitRange.HideChat does not deliver messages or
clear-seen updates to ghosts; use ChatTransmitRange.NoGhosts or an equivalent
explicit ghost filter while preserving hidden-chat behavior for live listeners.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 68f42315-0e97-4460-8daf-59e1457704c3

📥 Commits

Reviewing files that changed from the base of the PR and between c445957 and 1cfd26f.

📒 Files selected for processing (1)
  • Content.Server/Chat/Systems/ChatSystem.cs

Comment thread Content.Server/Chat/Systems/ChatSystem.cs
@Huaqas

Huaqas commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

Should be good to go.

@Huaqas

Huaqas commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

@CodeRabbit what is left to get your approval

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="ss14Starlight/space-station-14"
pr_number="5554"

echo "== Pull request status =="
gh pr view "$pr_number" --repo "$repo" \
  --json state,isDraft,mergeStateStatus,reviewDecision,statusCheckRollup,reviews \
  --jq '{
    state,
    isDraft,
    mergeStateStatus,
    reviewDecision,
    checks: [.statusCheckRollup[]? | {name: .name, status: .status, conclusion: .conclusion}],
    reviews: [.reviews[]? | {author: .author.login, state: .state, submittedAt: .submittedAt}]
  }'

echo
echo "== Unresolved review threads =="
gh api graphql \
  -F owner="ss14Starlight" \
  -F name="space-station-14" \
  -F number="$pr_number" \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      reviewThreads(first: 100) {
        nodes {
          isResolved
          path
          line
          comments(first: 20) {
            nodes {
              author { login }
              body
              createdAt
            }
          }
        }
      }
    }
  }
}' \
  --jq '.data.repository.pullRequest.reviewThreads.nodes[]
  | select(.isResolved == false)
  | {
      path,
      line,
      comments: [.comments.nodes[] | {
        author: .author.login,
        createdAt,
        body
      }]
    }'

Length of output: 4619


@Huaqas, nothing remains from CodeRabbit.

I found no unresolved review threads. All current CI checks passed. The cancelled validate-changelog run has a later successful replacement.

GitHub still reports the PR as BLOCKED with no review decision. That block is likely a repository protection rule or a required human approval, not a CodeRabbit finding.

Post @coderabbitai approve as a top-level PR comment when you want the formal CodeRabbit approval.

You are interacting with an AI system.

@Huaqas Huaqas added T: Fix bug and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. bug labels Aug 10, 2026
@wayiscool wayiscool mentioned this pull request Aug 10, 2026
4 tasks
@starlightgithub starlightgithub Bot added S: Approved Status: Reviewed and approved by at least one maintainer or dev; a PR may require another approval. and removed S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. labels Aug 10, 2026
@walksanatora
walksanatora added this pull request to the merge queue Aug 10, 2026
Merged via the queue into ss14Starlight:starlight-dev with commit cf1c188 Aug 10, 2026
25 of 26 checks passed
starlightgithub Bot added a commit that referenced this pull request Aug 10, 2026
wayiscool pushed a commit to wayiscool/space-station-14 that referenced this pull request Aug 12, 2026
## Short description
<!-- What do you propose to change with your PR? -->
Adds the following to Serpentcrest:
- Radio Host Room
- Journalisim Access doors
- Departmental lathes
- Station Radios

Also adds a RadioHost job slot to Serpentcrest.yml

REQUIREMENTS:
Requires: ss14Starlight#5587 or ss14Starlight#5554 
## Why we need to add this
<!-- What is the reason for adding these changes? Please post links to
Discussions as well as Bug Reports here. Please describe how this will
change the game balance. -->
Apart of new mapping chores due to new changes
## Media (Video/Screenshots)
<!--
If your PR contains in-game changes you must provide screenshots/videos
of the changes.
-->
2 Station Radios located inside the bar:
<img width="529" height="511" alt="image"
src="https://github.com/user-attachments/assets/2fa24095-ffde-47ae-83d3-eb6344381327"
/>
Station Radio located in genpop so the prisinors can hear the beats:
<img width="904" height="583" alt="image"
src="https://github.com/user-attachments/assets/9dea2670-335e-4ce6-9d9a-55ca046da737"
/>
Station Radio located right next to cryo room:
<img width="631" height="690" alt="image"
src="https://github.com/user-attachments/assets/dda8c589-66ab-4507-a607-b68285c49616"
/>
The Radio Host's room:
<img width="631" height="318" alt="image"
src="https://github.com/user-attachments/assets/bc3780da-7938-4e3c-b6eb-953cf41bb0c0"
/>
Updated Airlocks:
<img width="463" height="106" alt="image"
src="https://github.com/user-attachments/assets/6a7a1cbc-db05-494a-9e12-c534c8e27370"
/>
<img width="477" height="93" alt="image"
src="https://github.com/user-attachments/assets/b87715c7-80d9-4d91-9801-d5095b76aaef"
/>
Station Radio located inside medical Breakroom:
<img width="708" height="769" alt="image"
src="https://github.com/user-attachments/assets/e2664c78-971a-4d98-8b2f-08d4f8719fea"
/>
Station Radio located inside Cargo breakroom:
<img width="581" height="573" alt="image"
src="https://github.com/user-attachments/assets/399d5018-213e-4d9b-928e-750d6704cb38"
/>
Station Radio located inside Security Breakroom:
<img width="896" height="325" alt="image"
src="https://github.com/user-attachments/assets/770bd2b5-ff28-41a5-9b50-8ac81ebfc950"
/>
Station Radio Located inside Science Breakroom:
<img width="434" height="708" alt="image"
src="https://github.com/user-attachments/assets/b6b966ad-3039-4cc1-b960-fe516c533e5e"
/>
Station Radio Located inside Bridge:
<img width="733" height="422" alt="image"
src="https://github.com/user-attachments/assets/054d0c58-146b-44c0-827e-36c795598748"
/>

### **Departmental Lathes:**
Service Lathe:
<img width="979" height="600" alt="image"
src="https://github.com/user-attachments/assets/04d0d69d-3339-4fbe-a74d-ed98b22dd4c4"
/>

Engineering Lathe:
<img width="458" height="266" alt="image"
src="https://github.com/user-attachments/assets/60a110d6-17a8-49e3-9bd3-2664983e0fae"
/>

Command Lathe:
<img width="785" height="650" alt="image"
src="https://github.com/user-attachments/assets/7f44cd0d-9aa4-48ac-884b-8839f0c08416"
/>


Science Lathe:
<img width="191" height="390" alt="image"
src="https://github.com/user-attachments/assets/f1a55d8b-a6bd-4ece-b620-38f3f6ce2ee3"
/>

Cargo Lathe:
<img width="258" height="448" alt="image"
src="https://github.com/user-attachments/assets/2e17e63a-ba02-4ba8-803d-cc196289370d"
/>

## Checks
<!-- check boxes for faster reviewing of your PR -->

- [x] I do not require assistance to complete the PR.
- [x] Before posting/requesting review of a PR, I have verified that the
changes work.
- [x] I have added screenshots/videos of the changes, or this PR does
not change in-game mechanics.
- [x] I affirm that my changes are licensed under the [MIT
License](https://github.com/ss14Starlight/space-station-14/blob/Starlight/LICENSE.TXT)
and grant permission for use in this repository under its conditions.

**Changelog**
<!--
If you want the players to know about changes made in this PR, specify
them using the template outside the comment. Short and informative. -->

:cl: Forrestgod
- add: (Serpentcrest) Radio Host room as well as Station Radios.
- add: (Serpentcrest) Departmental Lathes are now present inside each
department.
- tweak: (Serpentcrest) Added Journalisim access doors to reporters
office.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Changes: C# Changes: Prototypes S: Approved Status: Reviewed and approved by at least one maintainer or dev; a PR may require another approval. size/M T: Fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants